package myutil

// ContainsDuplicates 检查切片中是否包含重复元素，支持所有可比较的类型
func ContainsDuplicates[T comparable](slice []T) bool {
	seen := make(map[T]struct{}) // 使用struct{}作为值类型，更节省内存
	for _, item := range slice {
		if _, exists := seen[item]; exists {
			return true // 发现重复元素
		}
		seen[item] = struct{}{}
	}
	return false // 没有重复元素
}

// SliceContains 检查切片中是否包含指定元素，支持所有可比较类型
func SliceContains[T comparable](slice []T, target T) bool {
	for _, item := range slice {
		if item == target {
			return true
		}
	}
	return false
}
